-- Decompiled with the Synapse X Luau decompiler.

local l__MarketplaceService__1 = game:GetService("MarketplaceService");
local l__ClientOHOH__2 = _G.ClientOHOH;
local l__event_list__3 = l__ClientOHOH__2.event_list;
local l__function_list__4 = l__ClientOHOH__2.function_list;
l__event_list__3.premium_purchase = true;
l__function_list__4.buy_premium = true;
l__function_list__4.buy_product = true;
local v5 = l__ClientOHOH__2.class.new(script);
local l__Players__1 = game:GetService("Players");
local u2 = l__ClientOHOH__2.load.InstanceManager();
local l__event_manager__3 = l__ClientOHOH__2.event_manager;
l__MarketplaceService__1.PromptPremiumPurchaseFinished:Connect(function()
	if u2:FindObject(l__Players__1.LocalPlayer) then
		l__event_manager__3:Fire(l__event_list__3.premium_purchase);
	end;
end);
local l__function_manager__4 = l__ClientOHOH__2.function_manager;
function v5.BuyPremium(p1)
	local v6 = u2:FindObject(l__Players__1.LocalPlayer);
	if not v6 then
		return false;
	end;
	assert(v6.main_inst, "player object main instance is lost");
	assert(v6:IsA("Client_PlayerObject", "object must be a client player object"));
	if v6:IsPremium() then
		return false;
	end;
	return l__function_manager__4:Invoke(l__function_list__4.buy_premium);
end;
function v5.BuyProduct(p2, p3)
	local v7 = u2:FindObject(l__Players__1.LocalPlayer);
	if not v7 then
		return false;
	end;
	assert(v7.main_inst, "player object main instance is lost");
	assert(p3, "param product id is nil");
	assert(v7:IsA("Client_PlayerObject", "object must be a client player object"));
	return l__function_manager__4:Invoke(l__function_list__4.buy_product, p3);
end;
function v5.GetProductInfo(p4, p5)
	return l__MarketplaceService__1:GetProductInfo(p5, Enum.InfoType.Product);
end;
function v5.GetAllProductInfo(p6)
	local v8 = l__MarketplaceService__1:GetDeveloperProductsAsync();
	local v9 = {};
	while true do
		for v10, v11 in pairs((v8:GetCurrentPage())) do
			v9[v11.ProductId] = v11;
		end;
		if v8.IsFinished then
			break;
		end;
		v8:AdvanceToNextPageAsync();	
	end;
	return v9;
end;
return v5;
